
package com.sforce.soap.enterprise.sobject;

import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlType;
import javax.xml.datatype.XMLGregorianCalendar;


/**
 * <p>ChatterAnswersActivity complex typeのJavaクラス。
 * 
 * <p>次のスキーマ・フラグメントは、このクラス内に含まれる予期されるコンテンツを指定します。
 * 
 * <pre>
 * &lt;complexType name="ChatterAnswersActivity">
 *   &lt;complexContent>
 *     &lt;extension base="{urn:sobject.enterprise.soap.sforce.com}sObject">
 *       &lt;sequence>
 *         &lt;element name="BestAnswerReceivedCount" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="BestAnswerSelectedCount" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="Community" type="{urn:sobject.enterprise.soap.sforce.com}Community" minOccurs="0"/>
 *         &lt;element name="CommunityId" type="{urn:enterprise.soap.sforce.com}ID" minOccurs="0"/>
 *         &lt;element name="QuestionSubscrCount" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="QuestionSubscrReceivedCount" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="QuestionUpVotesCount" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="QuestionUpVotesReceivedCount" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="QuestionsCount" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="RepliesCount" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="ReplyDownVotesCount" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="ReplyDownVotesReceivedCount" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="ReplyUpVotesCount" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="ReplyUpVotesReceivedCount" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="ReportAbuseOnQuestionsCount" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="ReportAbuseOnRepliesCount" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="ReportAbuseReceivedOnQnCount" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="ReportAbuseReceivedOnReCount" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="SystemModstamp" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
 *         &lt;element name="User" type="{urn:sobject.enterprise.soap.sforce.com}User" minOccurs="0"/>
 *         &lt;element name="UserId" type="{urn:enterprise.soap.sforce.com}ID" minOccurs="0"/>
 *       &lt;/sequence>
 *     &lt;/extension>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ChatterAnswersActivity", propOrder = {
    "bestAnswerReceivedCount",
    "bestAnswerSelectedCount",
    "community",
    "communityId",
    "questionSubscrCount",
    "questionSubscrReceivedCount",
    "questionUpVotesCount",
    "questionUpVotesReceivedCount",
    "questionsCount",
    "repliesCount",
    "replyDownVotesCount",
    "replyDownVotesReceivedCount",
    "replyUpVotesCount",
    "replyUpVotesReceivedCount",
    "reportAbuseOnQuestionsCount",
    "reportAbuseOnRepliesCount",
    "reportAbuseReceivedOnQnCount",
    "reportAbuseReceivedOnReCount",
    "systemModstamp",
    "user",
    "userId"
})
public class ChatterAnswersActivity
    extends SObject
{

    @XmlElementRef(name = "BestAnswerReceivedCount", namespace = "urn:sobject.enterprise.soap.sforce.com", type = JAXBElement.class, required = false)
    protected JAXBElement<Integer> bestAnswerReceivedCount;
    @XmlElementRef(name = "BestAnswerSelectedCount", namespace = "urn:sobject.enterprise.soap.sforce.com", type = JAXBElement.class, required = false)
    protected JAXBElement<Integer> bestAnswerSelectedCount;
    @XmlElementRef(name = "Community", namespace = "urn:sobject.enterprise.soap.sforce.com", type = JAXBElement.class, required = false)
    protected JAXBElement<Community> community;
    @XmlElementRef(name = "CommunityId", namespace = "urn:sobject.enterprise.soap.sforce.com", type = JAXBElement.class, required = false)
    protected JAXBElement<String> communityId;
    @XmlElementRef(name = "QuestionSubscrCount", namespace = "urn:sobject.enterprise.soap.sforce.com", type = JAXBElement.class, required = false)
    protected JAXBElement<Integer> questionSubscrCount;
    @XmlElementRef(name = "QuestionSubscrReceivedCount", namespace = "urn:sobject.enterprise.soap.sforce.com", type = JAXBElement.class, required = false)
    protected JAXBElement<Integer> questionSubscrReceivedCount;
    @XmlElementRef(name = "QuestionUpVotesCount", namespace = "urn:sobject.enterprise.soap.sforce.com", type = JAXBElement.class, required = false)
    protected JAXBElement<Integer> questionUpVotesCount;
    @XmlElementRef(name = "QuestionUpVotesReceivedCount", namespace = "urn:sobject.enterprise.soap.sforce.com", type = JAXBElement.class, required = false)
    protected JAXBElement<Integer> questionUpVotesReceivedCount;
    @XmlElementRef(name = "QuestionsCount", namespace = "urn:sobject.enterprise.soap.sforce.com", type = JAXBElement.class, required = false)
    protected JAXBElement<Integer> questionsCount;
    @XmlElementRef(name = "RepliesCount", namespace = "urn:sobject.enterprise.soap.sforce.com", type = JAXBElement.class, required = false)
    protected JAXBElement<Integer> repliesCount;
    @XmlElementRef(name = "ReplyDownVotesCount", namespace = "urn:sobject.enterprise.soap.sforce.com", type = JAXBElement.class, required = false)
    protected JAXBElement<Integer> replyDownVotesCount;
    @XmlElementRef(name = "ReplyDownVotesReceivedCount", namespace = "urn:sobject.enterprise.soap.sforce.com", type = JAXBElement.class, required = false)
    protected JAXBElement<Integer> replyDownVotesReceivedCount;
    @XmlElementRef(name = "ReplyUpVotesCount", namespace = "urn:sobject.enterprise.soap.sforce.com", type = JAXBElement.class, required = false)
    protected JAXBElement<Integer> replyUpVotesCount;
    @XmlElementRef(name = "ReplyUpVotesReceivedCount", namespace = "urn:sobject.enterprise.soap.sforce.com", type = JAXBElement.class, required = false)
    protected JAXBElement<Integer> replyUpVotesReceivedCount;
    @XmlElementRef(name = "ReportAbuseOnQuestionsCount", namespace = "urn:sobject.enterprise.soap.sforce.com", type = JAXBElement.class, required = false)
    protected JAXBElement<Integer> reportAbuseOnQuestionsCount;
    @XmlElementRef(name = "ReportAbuseOnRepliesCount", namespace = "urn:sobject.enterprise.soap.sforce.com", type = JAXBElement.class, required = false)
    protected JAXBElement<Integer> reportAbuseOnRepliesCount;
    @XmlElementRef(name = "ReportAbuseReceivedOnQnCount", namespace = "urn:sobject.enterprise.soap.sforce.com", type = JAXBElement.class, required = false)
    protected JAXBElement<Integer> reportAbuseReceivedOnQnCount;
    @XmlElementRef(name = "ReportAbuseReceivedOnReCount", namespace = "urn:sobject.enterprise.soap.sforce.com", type = JAXBElement.class, required = false)
    protected JAXBElement<Integer> reportAbuseReceivedOnReCount;
    @XmlElementRef(name = "SystemModstamp", namespace = "urn:sobject.enterprise.soap.sforce.com", type = JAXBElement.class, required = false)
    protected JAXBElement<XMLGregorianCalendar> systemModstamp;
    @XmlElementRef(name = "User", namespace = "urn:sobject.enterprise.soap.sforce.com", type = JAXBElement.class, required = false)
    protected JAXBElement<User> user;
    @XmlElementRef(name = "UserId", namespace = "urn:sobject.enterprise.soap.sforce.com", type = JAXBElement.class, required = false)
    protected JAXBElement<String> userId;

    /**
     * bestAnswerReceivedCountプロパティの値を取得します。
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public JAXBElement<Integer> getBestAnswerReceivedCount() {
        return bestAnswerReceivedCount;
    }

    /**
     * bestAnswerReceivedCountプロパティの値を設定します。
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public void setBestAnswerReceivedCount(JAXBElement<Integer> value) {
        this.bestAnswerReceivedCount = value;
    }

    /**
     * bestAnswerSelectedCountプロパティの値を取得します。
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public JAXBElement<Integer> getBestAnswerSelectedCount() {
        return bestAnswerSelectedCount;
    }

    /**
     * bestAnswerSelectedCountプロパティの値を設定します。
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public void setBestAnswerSelectedCount(JAXBElement<Integer> value) {
        this.bestAnswerSelectedCount = value;
    }

    /**
     * communityプロパティの値を取得します。
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link Community }{@code >}
     *     
     */
    public JAXBElement<Community> getCommunity() {
        return community;
    }

    /**
     * communityプロパティの値を設定します。
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link Community }{@code >}
     *     
     */
    public void setCommunity(JAXBElement<Community> value) {
        this.community = value;
    }

    /**
     * communityIdプロパティの値を取得します。
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link String }{@code >}
     *     
     */
    public JAXBElement<String> getCommunityId() {
        return communityId;
    }

    /**
     * communityIdプロパティの値を設定します。
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link String }{@code >}
     *     
     */
    public void setCommunityId(JAXBElement<String> value) {
        this.communityId = value;
    }

    /**
     * questionSubscrCountプロパティの値を取得します。
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public JAXBElement<Integer> getQuestionSubscrCount() {
        return questionSubscrCount;
    }

    /**
     * questionSubscrCountプロパティの値を設定します。
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public void setQuestionSubscrCount(JAXBElement<Integer> value) {
        this.questionSubscrCount = value;
    }

    /**
     * questionSubscrReceivedCountプロパティの値を取得します。
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public JAXBElement<Integer> getQuestionSubscrReceivedCount() {
        return questionSubscrReceivedCount;
    }

    /**
     * questionSubscrReceivedCountプロパティの値を設定します。
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public void setQuestionSubscrReceivedCount(JAXBElement<Integer> value) {
        this.questionSubscrReceivedCount = value;
    }

    /**
     * questionUpVotesCountプロパティの値を取得します。
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public JAXBElement<Integer> getQuestionUpVotesCount() {
        return questionUpVotesCount;
    }

    /**
     * questionUpVotesCountプロパティの値を設定します。
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public void setQuestionUpVotesCount(JAXBElement<Integer> value) {
        this.questionUpVotesCount = value;
    }

    /**
     * questionUpVotesReceivedCountプロパティの値を取得します。
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public JAXBElement<Integer> getQuestionUpVotesReceivedCount() {
        return questionUpVotesReceivedCount;
    }

    /**
     * questionUpVotesReceivedCountプロパティの値を設定します。
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public void setQuestionUpVotesReceivedCount(JAXBElement<Integer> value) {
        this.questionUpVotesReceivedCount = value;
    }

    /**
     * questionsCountプロパティの値を取得します。
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public JAXBElement<Integer> getQuestionsCount() {
        return questionsCount;
    }

    /**
     * questionsCountプロパティの値を設定します。
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public void setQuestionsCount(JAXBElement<Integer> value) {
        this.questionsCount = value;
    }

    /**
     * repliesCountプロパティの値を取得します。
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public JAXBElement<Integer> getRepliesCount() {
        return repliesCount;
    }

    /**
     * repliesCountプロパティの値を設定します。
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public void setRepliesCount(JAXBElement<Integer> value) {
        this.repliesCount = value;
    }

    /**
     * replyDownVotesCountプロパティの値を取得します。
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public JAXBElement<Integer> getReplyDownVotesCount() {
        return replyDownVotesCount;
    }

    /**
     * replyDownVotesCountプロパティの値を設定します。
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public void setReplyDownVotesCount(JAXBElement<Integer> value) {
        this.replyDownVotesCount = value;
    }

    /**
     * replyDownVotesReceivedCountプロパティの値を取得します。
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public JAXBElement<Integer> getReplyDownVotesReceivedCount() {
        return replyDownVotesReceivedCount;
    }

    /**
     * replyDownVotesReceivedCountプロパティの値を設定します。
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public void setReplyDownVotesReceivedCount(JAXBElement<Integer> value) {
        this.replyDownVotesReceivedCount = value;
    }

    /**
     * replyUpVotesCountプロパティの値を取得します。
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public JAXBElement<Integer> getReplyUpVotesCount() {
        return replyUpVotesCount;
    }

    /**
     * replyUpVotesCountプロパティの値を設定します。
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public void setReplyUpVotesCount(JAXBElement<Integer> value) {
        this.replyUpVotesCount = value;
    }

    /**
     * replyUpVotesReceivedCountプロパティの値を取得します。
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public JAXBElement<Integer> getReplyUpVotesReceivedCount() {
        return replyUpVotesReceivedCount;
    }

    /**
     * replyUpVotesReceivedCountプロパティの値を設定します。
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public void setReplyUpVotesReceivedCount(JAXBElement<Integer> value) {
        this.replyUpVotesReceivedCount = value;
    }

    /**
     * reportAbuseOnQuestionsCountプロパティの値を取得します。
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public JAXBElement<Integer> getReportAbuseOnQuestionsCount() {
        return reportAbuseOnQuestionsCount;
    }

    /**
     * reportAbuseOnQuestionsCountプロパティの値を設定します。
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public void setReportAbuseOnQuestionsCount(JAXBElement<Integer> value) {
        this.reportAbuseOnQuestionsCount = value;
    }

    /**
     * reportAbuseOnRepliesCountプロパティの値を取得します。
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public JAXBElement<Integer> getReportAbuseOnRepliesCount() {
        return reportAbuseOnRepliesCount;
    }

    /**
     * reportAbuseOnRepliesCountプロパティの値を設定します。
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public void setReportAbuseOnRepliesCount(JAXBElement<Integer> value) {
        this.reportAbuseOnRepliesCount = value;
    }

    /**
     * reportAbuseReceivedOnQnCountプロパティの値を取得します。
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public JAXBElement<Integer> getReportAbuseReceivedOnQnCount() {
        return reportAbuseReceivedOnQnCount;
    }

    /**
     * reportAbuseReceivedOnQnCountプロパティの値を設定します。
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public void setReportAbuseReceivedOnQnCount(JAXBElement<Integer> value) {
        this.reportAbuseReceivedOnQnCount = value;
    }

    /**
     * reportAbuseReceivedOnReCountプロパティの値を取得します。
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public JAXBElement<Integer> getReportAbuseReceivedOnReCount() {
        return reportAbuseReceivedOnReCount;
    }

    /**
     * reportAbuseReceivedOnReCountプロパティの値を設定します。
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public void setReportAbuseReceivedOnReCount(JAXBElement<Integer> value) {
        this.reportAbuseReceivedOnReCount = value;
    }

    /**
     * systemModstampプロパティの値を取得します。
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link XMLGregorianCalendar }{@code >}
     *     
     */
    public JAXBElement<XMLGregorianCalendar> getSystemModstamp() {
        return systemModstamp;
    }

    /**
     * systemModstampプロパティの値を設定します。
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link XMLGregorianCalendar }{@code >}
     *     
     */
    public void setSystemModstamp(JAXBElement<XMLGregorianCalendar> value) {
        this.systemModstamp = value;
    }

    /**
     * userプロパティの値を取得します。
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link User }{@code >}
     *     
     */
    public JAXBElement<User> getUser() {
        return user;
    }

    /**
     * userプロパティの値を設定します。
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link User }{@code >}
     *     
     */
    public void setUser(JAXBElement<User> value) {
        this.user = value;
    }

    /**
     * userIdプロパティの値を取得します。
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link String }{@code >}
     *     
     */
    public JAXBElement<String> getUserId() {
        return userId;
    }

    /**
     * userIdプロパティの値を設定します。
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link String }{@code >}
     *     
     */
    public void setUserId(JAXBElement<String> value) {
        this.userId = value;
    }

}
